home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.lang.reflect.Method;
- import java.text.BreakIterator;
-
- public class Utilities {
- static boolean is1dot2 = false;
- // $FF: synthetic field
- static Class class$java$awt$Toolkit;
-
- static {
- try {
- Method var0 = (class$java$awt$Toolkit != null ? class$java$awt$Toolkit : (class$java$awt$Toolkit = class$("java.awt.Toolkit"))).getMethod("getMaximumCursorColors", (Class[])null);
- is1dot2 = var0 != null;
- } catch (NoSuchMethodException var1) {
- is1dot2 = false;
- }
-
- if (is1dot2) {
- System.err.println("warning: running 1.1 version of Utilities");
- }
-
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static int drawComposedText(AttributeSet var0, Graphics var1, int var2, int var3, int var4, int var5) throws BadLocationException {
- return var2;
- }
-
- public static final int drawTabbedText(Segment var0, int var1, int var2, Graphics var3, TabExpander var4, int var5) {
- FontMetrics var6 = var3.getFontMetrics();
- int var7 = var1;
- char[] var8 = var0.array;
- int var9 = 0;
- int var10 = var0.offset;
- int var11 = var0.offset + var0.count;
-
- for(int var12 = var0.offset; var12 < var11; ++var12) {
- if (var8[var12] == '\t') {
- if (var9 > 0) {
- var3.drawChars(var8, var10, var9, var1, var2);
- var9 = 0;
- }
-
- var10 = var12 + 1;
- if (var4 != null) {
- var7 = (int)var4.nextTabStop((float)var7, var5 + var12 - var0.offset);
- } else {
- var7 += var6.charWidth(' ');
- }
-
- var1 = var7;
- } else if (var8[var12] != '\n' && var8[var12] != '\r') {
- ++var9;
- var7 += var6.charWidth(var8[var12]);
- } else {
- if (var9 > 0) {
- var3.drawChars(var8, var10, var9, var1, var2);
- var9 = 0;
- }
-
- var10 = var12 + 1;
- var1 = var7;
- }
- }
-
- if (var9 > 0) {
- var3.drawChars(var8, var10, var9, var1, var2);
- }
-
- return var7;
- }
-
- public static final int getBreakLocation(Segment var0, FontMetrics var1, int var2, int var3, TabExpander var4, int var5) {
- int var6 = getTabbedTextOffset(var0, var1, var2, var3, var4, var5, false);
-
- for(int var7 = var0.offset + Math.min(var6, var0.count - 1); var7 >= var0.offset; --var7) {
- char var8 = var0.array[var7];
- if (Character.isWhitespace(var8)) {
- var6 = var7 - var0.offset + 1;
- break;
- }
- }
-
- return var6;
- }
-
- public static final int getNextWord(JTextComponent var0, int var1) throws BadLocationException {
- Element var3 = getParagraphElement(var0, var1);
-
- int var2;
- for(var2 = getNextWordInParagraph(var3, var1, false); var2 == -1; var2 = getNextWordInParagraph(var3, var1, true)) {
- var1 = var3.getEndOffset();
- var3 = getParagraphElement(var0, var1);
- }
-
- return var2;
- }
-
- static int getNextWordInParagraph(Element var0, int var1, boolean var2) throws BadLocationException {
- if (var0 == null) {
- throw new BadLocationException("No more words", var1);
- } else {
- Document var3 = var0.getDocument();
- int var4 = var0.getStartOffset();
- int var5 = Math.min(var0.getEndOffset(), var3.getLength());
- if (var1 < var5 && var1 >= var4) {
- String var6 = var3.getText(var4, var5 - var4);
- BreakIterator var7 = BreakIterator.getWordInstance();
- var7.setText(var6);
- if (var2 && var7.first() == var1 - var4 && !Character.isWhitespace(var6.charAt(var7.first()))) {
- return var1;
- } else {
- int var8 = var7.following(var1 - var4);
- if (var8 != -1 && var8 < var6.length()) {
- char var9 = var6.charAt(var8);
- if (!Character.isWhitespace(var9)) {
- return var4 + var8;
- } else {
- var8 = var7.next();
- if (var8 != -1) {
- var1 = var4 + var8;
- if (var1 != var5) {
- return var1;
- }
- }
-
- return -1;
- }
- } else {
- return -1;
- }
- }
- } else {
- throw new BadLocationException("No more words", var1);
- }
- }
- }
-
- public static final Element getParagraphElement(JTextComponent var0, int var1) {
- Document var2 = var0.getDocument();
- if (var2 instanceof StyledDocument) {
- return ((StyledDocument)var2).getParagraphElement(var1);
- } else {
- Element var3 = var2.getDefaultRootElement();
- int var4 = var3.getElementIndex(var1);
- Element var5 = var3.getElement(var4);
- return var1 >= var5.getStartOffset() && var1 < var5.getEndOffset() ? var5 : null;
- }
- }
-
- public static final int getPositionAbove(JTextComponent var0, int var1, int var2) throws BadLocationException {
- int var3 = getRowStart(var0, var1) - 1;
- int var4 = 32767;
- int var5 = 0;
- Rectangle var6 = null;
- if (var3 >= 0) {
- var6 = var0.modelToView(var3);
- var5 = var6.y;
- }
-
- while(var6 != null && var5 == var6.y) {
- int var7 = Math.abs(var6.x - var2);
- if (var7 < var4) {
- var1 = var3;
- var4 = var7;
- }
-
- --var3;
- var6 = var3 >= 0 ? var0.modelToView(var3) : null;
- }
-
- return var1;
- }
-
- public static final int getPositionBelow(JTextComponent var0, int var1, int var2) throws BadLocationException {
- int var3 = getRowEnd(var0, var1) + 1;
- int var4 = 32767;
- int var5 = var0.getDocument().getLength();
- int var6 = 0;
- Rectangle var7 = null;
- if (var3 <= var5) {
- var7 = var0.modelToView(var3);
- var6 = var7.y;
- }
-
- while(var7 != null && var6 == var7.y) {
- int var8 = Math.abs(var2 - var7.x);
- if (var8 < var4) {
- var1 = var3;
- var4 = var8;
- }
-
- ++var3;
- var7 = var3 <= var5 ? var0.modelToView(var3) : null;
- }
-
- return var1;
- }
-
- static int getPrevWordInParagraph(Element var0, int var1) throws BadLocationException {
- if (var0 == null) {
- throw new BadLocationException("No more words", var1);
- } else {
- Document var2 = var0.getDocument();
- int var3 = var0.getStartOffset();
- int var4 = var0.getEndOffset();
- if (var1 <= var4 && var1 >= var3) {
- String var5 = var2.getText(var3, var4 - var3);
- BreakIterator var6 = BreakIterator.getWordInstance();
- var6.setText(var5);
- if (var6.following(var1 - var3) == -1) {
- var6.last();
- }
-
- int var7 = var6.previous();
- if (var7 == var1 - var3) {
- var7 = var6.previous();
- }
-
- if (var7 == -1) {
- return -1;
- } else {
- char var8 = var5.charAt(var7);
- if (!Character.isWhitespace(var8)) {
- return var3 + var7;
- } else {
- var7 = var6.previous();
- return var7 != -1 ? var3 + var7 : -1;
- }
- }
- } else {
- throw new BadLocationException("No more words", var1);
- }
- }
- }
-
- public static final int getPreviousWord(JTextComponent var0, int var1) throws BadLocationException {
- Element var3 = getParagraphElement(var0, var1);
-
- int var2;
- for(var2 = getPrevWordInParagraph(var3, var1); var2 == -1; var2 = getPrevWordInParagraph(var3, var1)) {
- var1 = var3.getStartOffset() - 1;
- var3 = getParagraphElement(var0, var1);
- }
-
- return var2;
- }
-
- public static final int getRowEnd(JTextComponent var0, int var1) throws BadLocationException {
- Rectangle var2 = var0.modelToView(var1);
- int var3 = var0.getDocument().getLength();
- int var4 = var1;
-
- for(int var5 = var2.y; var2 != null && var5 == var2.y; var2 = var4 <= var3 ? var0.modelToView(var4) : null) {
- var1 = var4++;
- }
-
- return var1;
- }
-
- public static final int getRowStart(JTextComponent var0, int var1) throws BadLocationException {
- Rectangle var2 = var0.modelToView(var1);
- int var3 = var1;
-
- for(int var4 = var2.y; var2 != null && var4 == var2.y; var2 = var3 >= 0 ? var0.modelToView(var3) : null) {
- var1 = var3--;
- }
-
- return var1;
- }
-
- public static final int getTabbedTextOffset(Segment var0, FontMetrics var1, int var2, int var3, TabExpander var4, int var5) {
- return getTabbedTextOffset(var0, var1, var2, var3, var4, var5, true);
- }
-
- public static final int getTabbedTextOffset(Segment var0, FontMetrics var1, int var2, int var3, TabExpander var4, int var5, boolean var6) {
- int var7 = var2;
- int var8 = var2;
- char[] var9 = var0.array;
- int var10 = var0.offset + var0.count;
-
- for(int var11 = var0.offset; var11 < var10; ++var11) {
- if (var9[var11] == '\t') {
- if (var4 != null) {
- var8 = (int)var4.nextTabStop((float)var8, var5 + var11 - var0.offset);
- } else {
- var8 += var1.charWidth(' ');
- }
- } else {
- var8 += var1.charWidth(var9[var11]);
- }
-
- if (var3 >= var7 && var3 < var8) {
- if (var6 && var3 - var7 >= var8 - var3) {
- return var11 + 1 - var0.offset;
- }
-
- return var11 - var0.offset;
- }
-
- var7 = var8;
- }
-
- return var0.count;
- }
-
- public static final int getTabbedTextWidth(Segment var0, FontMetrics var1, int var2, TabExpander var3, int var4) {
- int var5 = var2;
- char[] var6 = var0.array;
- int var7 = var0.offset + var0.count;
-
- for(int var8 = var0.offset; var8 < var7; ++var8) {
- if (var6[var8] == '\t') {
- if (var3 != null) {
- var5 = (int)var3.nextTabStop((float)var5, var4 + var8 - var0.offset);
- } else {
- var5 += var1.charWidth(' ');
- }
- } else if (var6[var8] != '\n') {
- var5 += var1.charWidth(var6[var8]);
- }
- }
-
- return var5 - var2;
- }
-
- public static final int getWordEnd(JTextComponent var0, int var1) throws BadLocationException {
- Document var2 = var0.getDocument();
- Element var3 = getParagraphElement(var0, var1);
- int var4 = var3.getStartOffset();
- int var5 = Math.min(var3.getEndOffset(), var2.getLength());
- String var6 = var2.getText(var4, var5 - var4);
- if (var6 != null && var6.length() > 0) {
- BreakIterator var7 = BreakIterator.getWordInstance();
- var7.setText(var6);
- int var8 = var1 - var4;
- if (var8 >= var7.last()) {
- var8 = var7.last() - 1;
- }
-
- var1 = var4 + var7.following(var8);
- }
-
- return var1;
- }
-
- public static final int getWordStart(JTextComponent var0, int var1) throws BadLocationException {
- Document var2 = var0.getDocument();
- Element var3 = getParagraphElement(var0, var1);
- int var4 = var3.getStartOffset();
- int var5 = Math.min(var3.getEndOffset(), var2.getLength());
- String var6 = var2.getText(var4, var5 - var4);
- if (var6 != null && var6.length() > 0) {
- BreakIterator var7 = BreakIterator.getWordInstance();
- var7.setText(var6);
- int var8 = var1 - var4;
- if (var8 >= var7.last()) {
- var8 = var7.last() - 1;
- }
-
- var7.following(var8);
- var1 = var4 + var7.previous();
- }
-
- return var1;
- }
-
- static boolean isComposedTextAttributeDefined(AttributeSet var0) {
- return var0 != null && var0.isDefined(StyleConstants.ComposedTextAttribute);
- }
-
- static boolean isComposedTextElement(Element var0) {
- AttributeSet var1 = var0.getAttributes();
- return isComposedTextAttributeDefined(var1);
- }
- }
-